package com.tianyadu.apigateway.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

import java.util.Arrays;

/**
 * @FileName: CrosConfig
 * @Description: 跨域配置信息
 * @author: xueyj
 * @create: 2018-11-26 21:46
 */
@Configuration
public class CrosConfig {
    @Bean
    public CorsFilter crosFilter() {
        //  跨域源信息初始化
        final UrlBasedCorsConfigurationSource source =new UrlBasedCorsConfigurationSource();
        //  跨域配置初始化
        final CorsConfiguration configuration = new CorsConfiguration();
        //  是否支持cookie跨域
        configuration.setAllowCredentials(true);
        //  设置那些原始域 如（http://www.aaa.com）
        configuration.setAllowedOrigins(Arrays.asList("*"));
        //  允许请求头
        configuration.setAllowedHeaders(Arrays.asList("*"));
        //  允许请求方式 get/post等
        configuration.setAllowedMethods(Arrays.asList("*"));
        //  缓存时间，在此时间段内，对于相同的跨域请求，不再进行校验检查，单位s
        configuration.setMaxAge(300L);
        //  跨域资源设置，路径（对那些域名进行配置），及校验方式等
        source.registerCorsConfiguration("/**", configuration);
        return new CorsFilter(source);
    }
}